A system on a chip or system on chip (SoC) is an integrated circuit (IC) that comprises several functional units on a single chip. A system on chip may, for instance, be used as an embedded system in, e.g., a motor vehicle, mobile phone, or manufacturing plant. A SoC may notably comprise one or more master units that are capable to request the transfer of information. The SoC may further comprise a number of slave units arranged to provide an appropriate response to such a request. The complete sequence of the request by the master unit and the following response by the slave unit is named a transaction.
Each master unit may be programmable by software (e.g. a microprocessor) or non-programmable (e.g. a direct-memory access (DMA) device, or a peripheral bus master). Slave units may be e.g. be volatile (e.g. static random-access memory SRAM, or dynamic random-access memory DRAM) or non-volatile memory (Flash) arranged to hold program code and/or corresponding data, but also intellectual property (IP) blocks implementing other system functionality (e.g. timers, counters, or communication devices), The later ones are often referred as peripheral blocks, or in short as “peripherals”. Some IP blocks can have a dual role, acting as a master requesting a transaction, but also as a slave responding to a transaction. To ensure clarity on the actual role of an IP block, in the following the term requestor unit and responder unit are used to refer respectively to a unit requesting a transfer of information and the unit responding to such a request.
Today's SoCs often comprise a set of features and functional blocks as well as memory space sufficient to allow a user or developer to add additional software to the SoC in order to provide additional functions. Such additional functions or add-ons may also make use of internal memory units or peripherals. For instance, an original equipment manufacturer (OEM) making use of such an SoC may sell a basic SoC that provides a certain number of functions and still has sufficient capacity for allowing a customer to add customer-specific functions. In this case, it may be important to shield the original system, i.e., the basic software provided by the OEM and the hardware blocks of this SoC used by this software, against such additions to insure the integrity and stability of the original system.